package 链表;

/**
 * 链表至少包含两个节点。
 * 链表中所有节点的值都是唯一的。
 * 给定的节点为非末尾节点并且一定是链表中的一个有效节点。
 * 不要从你的函数中返回任何结果。
 * <p>
 * 4->5->1->9
 *
 * 由于拿不到前一个节点,为了效率, 将当前节点的值设置为当前节点的下一个节点的值，当前节点的指针指向当前节点的下下个节点。
 * https://leetcode-cn.com/problems/delete-node-in-a-linked-list/
 */
public class _237_删除链表中的节点 {
    public static void main(String[] args) {
        ListNode first = new ListNode(10);
        ListNode second = new ListNode(11);
        ListNode third = new ListNode(12);
        first.next = second;
        second.next = third;
        LinkedListUtils.printNode(first);
        deleteNode(second);
        LinkedListUtils.printNode(first);
    }

    public static void deleteNode(ListNode node) {
        node.val = node.next.val;
        node.next = node.next.next;
    }

}
